package com.tarena.lbs.basic.web.exception;

import com.tarena.lbs.base.protocol.exception.BusinessException;
import com.tarena.lbs.base.protocol.model.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
@Slf4j
@RestControllerAdvice
public class GloablExceptionHandler {

    //Thrawable 表示系统异常
    @ExceptionHandler(Throwable.class)
    public Result handleThrowable(Throwable e) {
        //固定返回一个 提示信息是"系统异常 请联系管理员"
        log.error("系统异常", e);
        return Result.fail();
    }
    //BusinessException 业务异常
    @ExceptionHandler(BusinessException.class)
    public Result handleBusinessException(BusinessException e) {
        //固定返回一个 提示信息是"系统异常 请联系管理员" code=101 message="密码错误"
        log.error("业务异常", e);
        return Result.fail(e);
    }
    //spring-boot-starter-validation 非空 正则 校验 BindingException MethodArgsException
}
